package java_1_23;

public class Outter {
    private String msg="outter类中的msg属性";
    class Inner{
        private int num=10;
        private String msg="内部类的msg属性";
        public void test(){
            //直接访问外部类中的msg属性
            //此处直接访问了外部类的私有成员变量msg
            //成员变量得通过对象访问，但此处并没有。说明外部类对象默认被传入了内部类中了System.out.println(msg);[没有private String msg="内部类的msg属性";时，打印的是外部类的msg属性]
            System.out.println(Outter.this.msg);//Outter.this表示明确调用的是外部类的msg属性。取掉打印出的就是内部类的msg属性
            System.out.println(Outter.this);//outter.this是传入的隐藏外部类对象
        }
    }
    public void fun(){//fun方法中产生了内部类对象
        Inner inner=new Inner();
        inner.test();
    }
    public static void main(String[] args) {
        Outter outter=new Outter();//外部产生外部类对象
        outter.fun();
    }
}
